/*
 * Created on May 2, 2006
 *
 * Copyright (c) 2005 Peter Johan Salomonsen (http://www.petersalomonsen.com)
 * 
 * http://www.frinika.com
 * 
 * This file is part of Frinika.
 * 
 * Frinika is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.

 * Frinika is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with Frinika; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
package com.petersalomonsen.mediacast.session;

/**
 * @author Peter Johan Salomonsen
 */
public class CastTest {

    /**
     * @param args
     * @throws Exception 
     */
    public static void main(String[] args) throws Exception {
        CastSession session = new CastSession();

        byte b = 0;
        session.sendFragment("test",new byte[] {b++});

        class TestThread extends Thread {
            public void run()
            {
                try
                {
                    CastClient client = new CastClient("test");
                    int last = client.getFragment()[0] & 0xff;
                    int okCount=0;
                    int errorCount=0;
                    while(true)
                    {
                    		int cur = client.getFragment()[0] & 0xff;
                    		if(!(cur==last+1 || cur==0 & last==0xff))
                    		{
                    			//System.out.println(cur+" "+last);
                    			errorCount++;
                    			
                    			System.out.println("error "+okCount+" "+errorCount+" "+cur+" "+last);
                    			okCount=0;
                    		}
                    		else
                    		{
                    			System.out.println("ok "+cur+" "+last);
                    			okCount++;
                    		}
                    		last = cur;
                    }
                } catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
        };

        new TestThread().start();
        new TestThread().start();
        new TestThread().start();
        new TestThread().start();
        
        while(true)
        {
            session.sendFragment("test",new byte[] {b++});
        }
        
    }

}
